<?php
/**
 * Zendパーシャルビューヘルパーによるコンポーネント基底クラスモジュール
 */
require_once 'Zend/View.php';
require_once 'Request/DateTime.php';

class Disp{};

/**
 * Zendパーシャルビューヘルパーによるコンポーネント基底クラス
 * @author hariushi
 *
 */
class ZendPartialController
{
	public $ZendView;
	public $view;

	protected $_AttributeList = array();

	/** テンプレートファイル名 */
	public $TEMPLATE_FILE_NAME;

	/**
	 * コンストラクタ
	 * @param unknown_type $TemplateDir
	 */
	public function __construct($TemplateDir)
	{
		//$this->ZendView = $view;
		$this->ZendView = new Zend_View();
		$this->ZendView->addScriptPath($TemplateDir);
		$this->view = new Disp();
	}

	/**
	 * フェッチ
	 * @param unknown_type $TemplateFileName
	 */
	public function fetch($TemplateFileName)
	{
		$sHtml = $this->ZendView->partial($TemplateFileName, $this->_setValue());
		return $sHtml;
	}

	/**
	 * テンプレートに値を通知する
	 * @return multitype:
	 */
	protected function _setValue()
	{
		$aryValueList = get_object_vars( $this->view );
		return $aryValueList;
	}

	/**
	 * 属性設定
	 * 開始タグに属性を追加する
	 * 属性例：style="color:red;"
	 *              setAttribute('style', 'color:red')
	 *              onClick="doFunction();"
	 *              setAttribute('onClick', 'doFunction();')
	 * @param unknown_type $Property
	 * @param unknown_type $Value
	 */
	public function setAttribute($Property, $Value)
	{
		$sResult = sprintf($Property . '="%s"', $Value);
		$this->_AttributeList[] = $sResult;
	}

	/**
	 * 属性取得
	 */
	public function getAttribute()
	{
		if (count($this->_AttributeList) == 0){
			return '';
		}
		$sResult = implode(' ', $this->_AttributeList);
		return $sResult;
	}
}